package com.uvnos4j.matilda.system.service;

import com.uvnos4j.matilda.commons.service.BaseService;
import com.uvnos4j.matilda.system.domain.SysUser;

import java.util.List;

/**
 * 用户 Service
 * <p>
 * Description:用户 Service
 * </p>
 *
 * @author Guo.wl
 * @version v1.0.0
 * @see com.uvnos4j.matilda.system.service
 * @since 2020-08-31 23:29:13
 */
public interface SysUserService extends BaseService<SysUser> {

    /**
     * 获取系统用户信息
     *
     * @return 系统用户信息
     */
    SysUser getUserInfo();

    /**
     * 密码重置
     *
     * @param idList 用户Id
     * @return 结果
     */
    boolean resetPassword(List<Long> idList);

    /**
     * 密码修改
     *
     * @param password    原密码
     * @param newPassword 新密码
     * @return 结果
     */
    boolean updatePassword(String password, String newPassword);

    /**
     * 根据角色Id 查找用户列表
     *
     * @param roleId 角色Id
     * @return 用户列表
     */
    List<SysUser> findByRoleId(Long roleId);

    /**
     * 根据权限Id 查找用户列表
     *
     * @param aclId 权限Id
     * @return 用户列表
     */
    List<SysUser> findByAclId(Long aclId);

    /**
     * 根据部门统计用户数目
     *
     * @param id 部门id
     * @return 用户数目
     */
    int countByDeptId(Long id);
}

